let adminPath = "admin_express";
$(function () {
  $(".aside h4").click(function () {
    //		$(this).toggleClass('active');

    $(this).siblings("ul").slideToggle();
  });

  // 当状态点击的时候触发下面的app.changeStatus函数
  $(".status").click(app.changeStatus);

  app.init();
});
let app = {
  init() {
    this.deleteConfirm();
    this.changeSort();
  },
  deleteConfirm() {
    $(".delete").click(() => {
      let flag = confirm("确定要删除吗?");
      return flag;
    });
  },
  changeStatus() {
    let status = $(this).data("status");
    let model = $(this).data("model");
    let field = $(this).data("field");
    let id = $(this).data("id");
    // console.log($(this).data("status"));
    // console.log(model);
    // console.log($(this).data("field"));

    // 发起 ajax 异步请求
    $.get(
      "/" + adminPath + "/changeStatus",
      {
        status,
        model,
        field,
        id,
      },
      (response) => {
        if (response.success) {
          // 说明修改成功 同步渲染视图
          if (response.data == 1) {
            $(this).html("√");
            $(this).data("status", 1);
          } else {
            $(this).html("×");
            $(this).data("status", 0);
          }
          // console.log($(this));
        }
      }
    );
  },
  changeSort() {
    $(".sort").click(function () {
      let id = $(this).data("id");
      let field = $(this).data("field");
      let model = $(this).data("model");
      let oldNum = $(this).text();

      // 创建输入框
      let input = $('<input type="text" style="width: 60px" />');
      // 阻止表单冒泡，防止触发了.sort父元素
      $(input).click(function (event) {
        event.stopPropagation();
      });
      // 设置表单的默认值
      $(input).val(oldNum);
      $(this).html(input);
      // 自动触发获得焦点事件
      $(input).trigger("focus");
      // 为input绑定失去焦点事件
      $(input).blur(() => {
        // 当失去焦点的时候，重新让.sort的子元素从表单变为纯文本的值
        // 如果用户不输入，则自动变为0
        if (!$(input).val()) {
          // console.log("无数据");
          $(input).val(0);
        }
        let newNum = $(input).val();
        $(this).html(newNum);

        // 重新将新值更新回数据库
        if (oldNum != newNum) {
          // 如果有修改值才进行操作数据库, 否则就不进行操作
          $.get(
            "/" + adminPath + "/changeSort",
            {
              id,
              field,
              model,
              newNum,
            },
            (response) => {
              // 如果修改失败，则重新让.sort渲染为之前的值
              if (!response.success) {
                $(this).html(oldNum);
              }
            }
          );
        }
      });
    });
  },
};
